class Solution {
public:
    int timeRequiredToBuy(vector<int>& tickets, int k) {
        queue<int> ti;
        //将需要监控的那个人的目标值设置为负数，然后使用队列模拟流程即可
        for(int i = 0;i<tickets.size();i++)
        {
            if(i == k)
                ti.push(-tickets[i]);
            else
                ti.push(tickets[i]);
        }
        int ret = 0;
        while(!ti.empty())
        {
            int top = ti.front();
            ti.pop();
            if(top<0)
            {
                top++;
                ret++;
                if(top == 0)
                {
                    return ret;
                }
            }
            else
            {
                top--;
                ret++;
            }
            if(top!=0)
                ti.push(top);
        }
        return 0;
    }
};